<!--
 * @Author: CNN 969682281@qq.com
 * @Date: 2023-07-04 11:42:34
 * @LastEditors: 贺楠 1071780426@qq.com
 * @LastEditTime: 2024-08-08 11:10:21
 * @FilePath: \newMould_BHZ\src\views\TensionAndGrout\yjxtManage\earlyWarning.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
  <div class="department" id="mixingPlant">
    <!-- 左侧部门管理 -->
    <div class="structureTree" v-if="treelength">
      <div class="structureTree_title">
        <div>组织机构</div>
        <div></div>
      </div>
      <tree
        :treeData="treeData"
        :checkData="checkData"
        nodeKey="fCompanyid"
        @getTreeInfo="handleNodeClick"
        :defaultProps="defaultProps"
      >
      </tree>
    </div>
    <!-- 右侧 -->
    <div class="department_right">
      <!-- 机构名称 -->
      <el-breadcrumb :title="showName"></el-breadcrumb>
      <!-- 顶部导航栏 -->
      <div class="mechanism_nav">
        <!-- 左侧 -->
        <div class="mechanism_nav_left"></div>
        <!-- 顶部按钮 -->
        <div class="print" style="justify-content: flex-end">
          <el-button
            type="primary"
            v-if="yj_save"
            icon="el-icon-check"
            size="small"
            @click="yj_saveForm"
            >保存
          </el-button>
        </div>
      </div>
      <!-- 表格 -->
      <div class="text_table editTableAlarm">
        <!-- <div class="text_table_text">张拉预警信息设置：</div>
        <div class="text_table_box" style="height: 170px">
          <tableData
            :config="table_config"
            :currentRow="false"
            :dataList="tableData"
            :loading="listLoading"
            @inputValue="inputValue"
            statusType="1"
          />
        </div> -->
        <!-- <div class="text_table_text">压浆预警信息设置:</div> -->
        <tableData
          :config="table_configS"
          :currentRow="false"
          :dataList="tableDataS"
          :loading="listLoading"
          @inputValue="inputValueS"
          statusType="1"
        />
      </div>
    </div>
  </div>
</template>
<script>
import tree from "@/components/stationProductionPage/GroutManage/tree";
import TableData from "@/components/stationProductionPage/TensionManage/yjxtManage/el-tables";
import elBreadcrumb from "@/components/public/el-breadcrumb.vue";
import formJs from "./regexDetail.js"; //新增弹框配置项
import {
  getUserCompanyTreeList, //树状图接口
  // getTensioningWarningInfo, // 张拉预警信息获取
  // saveTensioningWarningInfo, // 张拉预警信息保存
  getGroutingWarningInfo, // 压浆预警信息获取
  saveGroutingWarningInfo, // 压浆预警信息保存
} from "@/api/request.js";
// import { statusType2 } from "@/utils/config"; //配置项
export default {
  name: "Home",
  data() {
    return {
      name: "alarmParameterSetting", //按钮配置页面代号
      yj_save: null,
      listLoading: false, //列表数据加载loading
      fNatureList: null, //机构性质
      // 张拉
      formData: {}, //新增编辑向后台传递对象
      // table_config: {
      //   classCell: true,
      //   thead: [
      //     {
      //       label: "",
      //       prop: "name",
      //       minWidth: "35px",
      //       filter: true,
      //       btn: true,
      //       align: "center",
      //       colorName: "",
      //       callback: (rowData) => {
      //         let data = statusType2[rowData.name];
      //         if (data) {
      //           return data.label;
      //         }
      //       },
      //       specialClass: (rowData) => {
      //         let data = statusType2[rowData.name];
      //         if (data) {
      //           return data.className;
      //         }
      //       },
      //     },
      //     {
      //       label: "延伸误差量(%)",
      //       prop: "Elongationdeviationlevel",
      //       minWidth: "60px",
      //       type: "number",
      //       disabled: false, //是否禁用
      //       edit: true,
      //       align: "center",
      //     },
      //     {
      //       label: "超张百分比(%)",
      //       prop: "Overtensionratelevel",
      //       minWidth: "60px",
      //       type: "number",
      //       disabled: false, //是否禁用
      //       edit: true,
      //       align: "center",
      //     },

      //     {
      //       label: "回缩量(mm)",
      //       prop: "Retractionlevel",
      //       minWidth: "60px",
      //       type: "number",
      //       disabled: false, //是否禁用
      //       edit: true,
      //       align: "center",
      //     },
      //     {
      //       label: "持荷时间(s)",
      //       prop: "Holdingtimelevel",
      //       minWidth: "60px",
      //       type: "number",
      //       disabled: false, //是否禁用
      //       edit: true,
      //       align: "center",
      //     },
      //     {
      //       label: "无过程数据",
      //       prop: "Noprocess",
      //       minWidth: "60px",
      //       type: "radio",
      //       disabled: false, //是否禁用
      //       radio: true,
      //       align: "center",
      //     },
      //     {
      //       label: "闭合流程",
      //       prop: "Examine",
      //       minWidth: "60px",
      //       type: "option",
      //       disabled: false, //是否禁用
      //       option: true,
      //       align: "center",
      //       options: [
      //         {
      //           value: "无需闭合",
      //           label: "无需闭合",
      //         },
      //         {
      //           value: "一级流程",
      //           label: "一级流程",
      //         },
      //         {
      //           value: "二级流程",
      //           label: "二级流程",
      //         },
      //         {
      //           value: "三级流程",
      //           label: "三级流程",
      //         },
      //         {
      //           value: "四级流程",
      //           label: "四级流程",
      //         },
      //       ],
      //     },
      //     {
      //       label: "一级审核",
      //       prop: "Aduituser1",
      //       minWidth: "60px",
      //       type: "option",
      //       disabled: false, //是否禁用
      //       option: true,
      //       options: [],
      //       align: "center",
      //     },
      //     {
      //       label: "二级审核",
      //       prop: "Aduituser2",
      //       minWidth: "60px",
      //       type: "option",
      //       disabled: false, //是否禁用
      //       option: true,
      //       options: [],
      //       align: "center",
      //     },
      //     {
      //       label: "三级审核",
      //       prop: "Aduituser3",
      //       minWidth: "60px",
      //       type: "option",
      //       disabled: false, //是否禁用
      //       option: true,
      //       options: [],
      //       align: "center",
      //     },
      //     {
      //       label: "四级审核",
      //       prop: "Aduituser4",
      //       minWidth: "60px",
      //       type: "option",
      //       disabled: false, //是否禁用
      //       option: true,
      //       options: [],
      //       align: "center",
      //     },
      //     {
      //       label: "是否启用预警",
      //       prop: "Isuse",
      //       minWidth: "60px",
      //       type: "radio",
      //       disabled: false, //是否禁用
      //       radio: true,
      //       align: "center",
      //     },
      //   ],
      //   isCheckBox: false,
      //   isIndex: false,
      //   isOperation: true,
      // }, //张拉配置表格
      // tableData: [], //表格列表数据列表
      // detailData: {}, //张拉-详情
      // 张拉

      // 压浆
      formDataS: {}, //新增编辑向后台传递对象
      table_configS: formJs.table_configS, //压浆配置表格
      tableDataS: [],
      detailDataS: {}, //压浆-详情
      // 压浆

      // 左侧机构树
      defaultProps: {
        children: "children",
        label: "fShortname",
      },
      highlightBd: true, //左侧机构树停留背景色
      treelength: false, //左侧树显示隐藏
      companyTree: "", //所有数据
      checked: true, //查看下级
      treeData: [], //左侧树状图数据
      checkData: [],
      treeText: {
        //树状图参数
        companyId: null,
        userId: null,
        text: null,
      },
      showName: "未选择公司",
      // 左侧机构树

      // 列表给后端传参
      getList: {
        companyId: "", // 施工标段id
      },

      userInfo: {}, //登录用户

      jgxzList: {
        value: "",
        label: "",
      }, //机构性质赋值
    };
  },
  components: {
    tree, //左侧组织机构数
    TableData, //主页面列表
    elBreadcrumb, //面包屑
    // publicForm,//弹框表格
  },
  created() {
    // 获取机构性质  一级审核至五级审核下拉框内容
    this.fNatureList = JSON.parse(
      window.sessionStorage.getItem("yjSmart-CompanyNature")
    );
    let listOption = [
      {
        value: "==请选择==",
        label: "==请选择==",
      },
    ];
    this.jgxzList = {
      value: "",
      label: "",
    };
    for (let index = 0; index < this.fNatureList.length; index++) {
      const element = this.fNatureList[index];
      this.jgxzList = {
        value: element.fItemValue,
        label: element.fItemName,
      };
      listOption.push(this.jgxzList);
    }
    // for (let index = 7; index < this.table_config.thead.length; index++) {
    //   const element = this.table_config.thead[index];
    //   element.options = listOption;
    // }
    for (let index = 6; index < this.table_configS.thead.length; index++) {
      const element = this.table_configS.thead[index];
      element.options = listOption;
    }

    // 获取机构性质  一级审核至五级审核下拉框内容
  },
  mounted() {
    this.userInfo = JSON.parse(sessionStorage.getItem("yjSmart-userInfo"));
    if (JSON.parse(sessionStorage.getItem("yjSmart-TensionAndGrout_treeCheck"))) {
      var id = JSON.parse(sessionStorage.getItem("yjSmart-TensionAndGrout_treeCheck"));
      this.checkData = [id.fCompanyid];
    }
    this.getTree();
    this.btnRole(this.name);
  },
  methods: {
    btnRole(name) {
      // 按钮权限
      var btnList = [];
      var ModuleList = JSON.parse(sessionStorage.getItem("yjSmart-ModuleList"));
      if (ModuleList.length > 0) {
        ModuleList.map((item) => {
          if (item.fEncode == name) {
            btnList = item.modulebuttonList;
          }
        });
        var btnStr = [];
        btnList.map((item) => {
          btnStr.push(item.fEncode);
        });
        this.yj_save = btnStr.includes("yj_save");
      } else {
        this.yj_save = true;
      }
    },

    // 左侧树结构
    getTree() {
      this.treeText = {
        companyId: this.userInfo.companyId,
        userId: this.userInfo.userId,
        text: "4", // 0其他  1 砼拌合站 2水稳 3沥青 4张拉压浆
      };
      getUserCompanyTreeList(this.treeText)
        .then((res) => {
          if (res.errcode == 0) {
            var companyTree = res.data.userCompanyTreeList;
            this.treeData = this.commonJs.tranListToTreeData(companyTree);

            if (this.treeData[0].children == undefined) {
              this.treelength = false; //左侧组织机构是否显示
            } else {
              this.treelength = true;
            }

            if (this.checkData[0]) {
              this.showName = JSON.parse(
                sessionStorage.getItem("yjSmart-TensionAndGrout_treeCheck")
              ).fShortname;

              this.getList.companyId = this.checkData[0];
            } else {
              this.checkData[0] = this.treeData[0].fCompanyid;

              this.showName = this.treeData[0].fShortname; //当前点击组织机构名称
              this.getList.companyId = this.treeData[0].fCompanyid; //当前点击组织机构ID
            }

            this.yj_searchForm(this.getList); // 调用主页面列表接口
          } else {
            this.$message.error(res.msg);
            return false;
          }
        })
        .catch(() => {
          return false;
        });
    },

    // 点击左侧机构树
    handleNodeClick(data) {
      this.showName = data.fShortname; //顶部显示机构名
      this.getList.companyId = data.fCompanyid;
      this.yj_searchForm(this.getList);
    },

    // 获取列表数据
    yj_searchForm(data) {
      this.listLoading = true;
      // // 张拉
      // getTensioningWarningInfo(data)
      //   .then((res) => {
      //     if (res.errcode == 0) {
      //       this.listLoading = false;
      //       var list = res.data.tensioningwarn;
      //       this.formData = list;
      //       console.log("formData",this.formData);
      //       this.detailData = res.data.tensioningwarn;
      //       var newfAduitUser1List = list.fAduituser1.split("-");
      //       var newfAduitUser2List = list.fAduituser2.split("-");
      //       var newfAduitUser3List = list.fAduituser3.split("-");
      //       var newfAduitUser4List = list.fAduituser4.split("-");

      //       this.tableData = [
      //         {
      //           name: "1",
      //           Elongationdeviationlevel: list.fElongationdeviationlevel1, //延伸误差量(%)
      //           Overtensionratelevel: list.fOvertensionratelevel1, //超张百分比
      //           Retractionlevel: list.fRetractionlevel1, //回缩量
      //           Holdingtimelevel: list.fHoldingtimelevel1, //持荷时间
      //           Noprocess: list.fNoprocess, //1 是 0 否  有无过程数据
      //           Examine: list.fExamine1, //闭合流程
      //           Aduituser1: newfAduitUser1List[0], //一级审核
      //           Aduituser2: newfAduitUser1List[1], //二级审核
      //           Aduituser3: newfAduitUser1List[2], //三级审核
      //           Aduituser4: newfAduitUser1List[3], //四级审核
      //           Isuse: list.fIsuse, //1 是 0 否  是否启用
      //         },
      //         {
      //           name: "2",
      //           Elongationdeviationlevel: list.fElongationdeviationlevel2,
      //           Overtensionratelevel: list.fOvertensionratelevel2,
      //           Retractionlevel: list.fRetractionlevel2,
      //           Holdingtimelevel: list.fHoldingtimelevel2,
      //           Noprocess: list.fNoprocess, //1 是 0 否  有无过程数据
      //           Examine: list.fExamine2, //闭合流程
      //           Aduituser1: newfAduitUser2List[0], //一级审核
      //           Aduituser2: newfAduitUser2List[1], //二级审核
      //           Aduituser3: newfAduitUser2List[2], //三级审核
      //           Aduituser4: newfAduitUser2List[3], //四级审核
      //           Isuse: list.fIsuse, //1 是 0 否  是否启用
      //         },
      //         {
      //           name: "3",
      //           Elongationdeviationlevel: list.fElongationdeviationlevel3,
      //           Overtensionratelevel: list.fOvertensionratelevel3,
      //           Retractionlevel: list.fRetractionlevel3,
      //           Holdingtimelevel: list.fHoldingtimelevel3,
      //           Noprocess: list.fNoprocess, //1 是 0 否  有无过程数据
      //           Examine: list.fExamine3, //闭合流程
      //           Aduituser1: newfAduitUser3List[0], //一级审核
      //           Aduituser2: newfAduitUser3List[1], //二级审核
      //           Aduituser3: newfAduitUser3List[2], //三级审核
      //           Aduituser4: newfAduitUser3List[3], //四级审核
      //           Isuse: list.fIsuse, //1 是 0 否  是否启用
      //         },
      //         {
      //           name: "4",
      //           Elongationdeviationlevel: list.fElongationdeviationlevel4,
      //           Overtensionratelevel: list.fOvertensionratelevel4,
      //           Retractionlevel: list.fRetractionlevel4,
      //           Holdingtimelevel: list.fHoldingtimelevel4,
      //           Noprocess: list.fNoprocess, //1 是 0 否  有无过程数据
      //           Examine: list.fExamine4, //闭合流程
      //           Aduituser1: newfAduitUser4List[0], //一级审核
      //           Aduituser2: newfAduitUser4List[1], //二级审核
      //           Aduituser3: newfAduitUser4List[2], //三级审核
      //           Aduituser4: newfAduitUser4List[3], //四级审核
      //           Isuse: list.fIsuse, //1 是 0 否  是否启用
      //         },
      //       ];
      //     } else {
      //       this.$message.error(res.msg);
      //       return false;
      //     }
      //   })
      //   .catch((error) => {
      //     console.log(error);
      //   });
      // 压浆
      getGroutingWarningInfo(data)
        .then((res) => {
          if (res.errcode == 0) {
            this.listLoading = false;
            var list = res.data.groutingwarn;
            this.formDataS = list;
            console.log(this.formDataS);
            this.detailDataS = res.data.groutingwarn;
            var newfAduitUserList = list.fAduituser.split("-");

            this.tableDataS = [
              {
                name: "预警",
                Groutingpressure: list.fGroutingpressure, //进浆压力
                Holdingtime: list.fHoldingtime, //持压时间
                Pressuredeviation: list.fPressuredeviation, //进浆压力与压浆压力误差
                Noprocess: list.fNoprocess, //1 是 0 否  有无过程数据
                Examine: list.fExamine, //闭合流程
                Aduituser1: newfAduitUserList[0], //一级审核
                Aduituser2: newfAduitUserList[1], //二级审核
                Aduituser3: newfAduitUserList[2], //三级审核
                Aduituser4: newfAduitUserList[3], //四级审核
                Isuse: list.fIsuse, //1 是 0 否  是否启用
              },
            ];
          } else {
            this.$message.error(res.msg);
            return false;
          }
        })
        .catch((error) => {
          console.log(error);
        });
    },

    // 保存接口
    yj_saveForm() {
     
      // saveTensioningWarningInfo(this.formData)
      //   .then((res) => {
      //     if (res.errcode == 0) {
      //       this.yj_searchForm(this.getList);
      //       this.$message.success("张拉预警保存成功");
      //     } else {
      //       this.$message.error(res.msg);
      //       console.log("接口报错");
      //     }
      //   })
      //   .catch((error) => {
      //     console.log("张拉报警参数设置-新增）", error);
      //   });

      saveGroutingWarningInfo(this.formDataS)
        .then((res) => {
          if (res.errcode == 0) {
            this.yj_searchForm(this.getList);
            this.$message.success("压浆数据保存成功");
          } else {
            this.$message.error(res.msg);
            console.log("接口报错");
          }
        })
        .catch((error) => {
          console.log("压浆报警参数设置-新增）", error);
        });
    },

    // 类型改变时触发
    changeRadio(num) {
      if (num == 0) {
        this.formObj[1].disabled = true;
        this.formObj[1].rules[0].required = false;
      } else {
        this.formObj[1].disabled = false;
        this.formObj[1].rules[0].required = true;
      }
    },

    // inputValue(val, table) {
    //   for (let index = 0; index < table.length; index++) {
    //     const element = table[index];
    //     if (element.Aduituser1 == "==请选择==") {
    //       element.Aduituser1 = "";
    //     } else if (element.Aduituser2 == "==请选择==") {
    //       element.Aduituser2 = "";
    //     } else if (element.Aduituser3 == "==请选择==") {
    //       element.Aduituser3 = "";
    //     } else if (element.Aduituser4 == "==请选择==") {
    //       element.Aduituser4 = "";
    //     }
    //   }

    //   this.formData = {
    //     fId: this.detailData.fId, // fId
    //     fCompanyid: this.getList.companyId, // 标段id
    //     fCompanyname: this.showName, // 标段名称
    //     fElongationdeviationlevel1: table[0].Elongationdeviationlevel, // 一级延伸误差量
    //     fElongationdeviationlevel2: table[1].Elongationdeviationlevel, // 二级延伸误差量
    //     fElongationdeviationlevel3: table[2].Elongationdeviationlevel, // 三级延伸误差量
    //     fElongationdeviationlevel4: table[3].Elongationdeviationlevel, // 四级延伸误差量
    //     fOvertensionratelevel1: table[0].Overtensionratelevel, // 一级超张百分比
    //     fOvertensionratelevel2: table[1].Overtensionratelevel, // 二级超张百分比
    //     fOvertensionratelevel3: table[2].Overtensionratelevel, // 三级超张百分比
    //     fOvertensionratelevel4: table[3].Overtensionratelevel, // 四级超张百分比
    //     fRetractionlevel1: table[0].Retractionlevel, // 一级回缩量
    //     fRetractionlevel2: table[1].Retractionlevel, // 二级回缩量
    //     fRetractionlevel3: table[2].Retractionlevel, // 三级回缩量
    //     fRetractionlevel4: table[3].Retractionlevel, // 四级回缩量
    //     fHoldingtimelevel1: table[0].Holdingtimelevel, // 一级持荷时间
    //     fHoldingtimelevel2: table[1].Holdingtimelevel, // 二级持荷时间
    //     fHoldingtimelevel3: table[2].Holdingtimelevel, // 三级持荷时间
    //     fHoldingtimelevel4: table[3].Holdingtimelevel, // 四级持荷时间
    //     fNoprocess: table[0].Noprocess, // 有无过程数据
    //     fExamine1: table[0].Examine, // 一级闭合流程
    //     fExamine2: table[1].Examine, // 二级闭合流程
    //     fExamine3: table[2].Examine, // 三级闭合流程
    //     fExamine4: table[3].Examine, // 四级闭合流程
    //     fAduituser1:
    //       table[0].Aduituser1 +
    //       "-" +
    //       table[0].Aduituser2 +
    //       "-" +
    //       table[0].Aduituser3 +
    //       "-" +
    //       table[0].Aduituser4, // 一级审核人员
    //     fAduituser2:
    //       table[1].Aduituser1 +
    //       "-" +
    //       table[1].Aduituser2 +
    //       "-" +
    //       table[1].Aduituser3 +
    //       "-" +
    //       table[1].Aduituser4, // 二级审核人员
    //     fAduituser3:
    //       table[2].Aduituser1 +
    //       "-" +
    //       table[2].Aduituser2 +
    //       "-" +
    //       table[2].Aduituser3 +
    //       "-" +
    //       table[2].Aduituser4, // 三级审核人员
    //     fAduituser4:
    //       table[3].Aduituser1 +
    //       "-" +
    //       table[3].Aduituser2 +
    //       "-" +
    //       table[3].Aduituser3 +
    //       "-" +
    //       table[3].Aduituser4, // 四级审核人员

    //     fIsuse: table[0].Isuse, // 1 是 0 否  是否启用
    //   };
    //   return val;
    // },
    inputValueS(val, table) {
      for (let index = 0; index < table.length; index++) {
        const element = table[index];
        if (element.Aduituser1 == "==请选择==") {
          element.Aduituser1 = "";
        } else if (element.Aduituser2 == "==请选择==") {
          element.Aduituser2 = "";
        } else if (element.Aduituser3 == "==请选择==") {
          element.Aduituser3 = "";
        } else if (element.Aduituser4 == "==请选择==") {
          element.Aduituser4 = "";
        }
      }

      this.formDataS = {
        fId: this.detailDataS.fId, // fId
        fCompanyid: this.getList.companyId, // 标段id
        fCompanyname: this.showName, // 标段名称
        fGroutingpressure: table[0].Groutingpressure,
        fHoldingtime: table[0].Holdingtime,
        fAduituser:
          table[0].Aduituser1 +
          "-" +
          table[0].Aduituser2 +
          "-" +
          table[0].Aduituser3 +
          "-" +
          table[0].Aduituser4,
        fNoprocess: table[0].Noprocess,
        fExamine: table[0].Examine,
        fPressuredeviation: table[0].Pressuredeviation,
        fIsuse: table[0].Isuse,
      };
      return val;
    },

    // classCell(row, column, rowIndex, columnIndex) {
    //     console.log(row, column, rowIndex, columnIndex);
    //     if (rowIndex == 0 && columnIndex == 0) {

    //         return 'blueClass';
    //     } else if (rowIndex == 1 && columnIndex == 0) {

    //         return 'orangeClass';
    //     } else if (rowIndex == 2 && columnIndex == 0) {

    //         return 'redClass';
    //     }
    // },
  },
};
</script>
  
<style scoped>
.printTables {
  background: #fff;
  display: flex;
  justify-content: end;
  padding: 5px;
  margin-top: 10px;
}

.dialogBody {
  padding: 3px 20px;
  height: 80%;
  overflow-y: auto;
}

.baseTitle {
  /* border: 1px solid #0c204d; */
  border-bottom: 1px solid #0c204d;

  height: 30px;
  line-height: 30px;
  position: relative;
  padding-left: 15px;
}

.baseTitle::after {
  display: block;
  content: "";
  height: 30px;
  width: 5px;
  position: absolute;
  left: 0;
  top: 0;
  background: #0c204d;
}
.text_table_text {
  font-size: 0.14rem;
  font-weight: 700;
}
</style>
